import java.util.*;


public class Test {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 实现一个方法，两个整数的入参a和b，计算两个整数之间3的倍数的所有数（闭区间）的和
     * @param a int整型
     * @param b int整型
     * @return long长整型
     */
    //遍历两个参数之间所有的数，如果是3的倍数，则将其相加
    //时间消耗在遍历上最多，应该考虑优化判断过程
    //方法一：找到第一个符合条件的数，然后将其每次加3.如果大于右边界的值，则返回上一次加3后的值

    public static long sum (int a, int b) {
        long sum = 0;
        if(a > b){
            int m = a;
            a = b;
            b = m;
        }
        if((a + (3-(a % 3)) < b)){
            return 0;
        }
        if(a % 3 != 0){
            //说明a不是3的倍数，然后找到第一个3的倍数
            int first = a + (3-(a % 3));
            sum = first;
            while(first < b){
                first += 3;
                sum += first;
            }
        }else{
            //说明a是3的倍数，对其进行递增操作
            while(a < b){
                a += 3;
                sum += a;
            }
        }
        return sum;
    }

    public static void main(String[] args) {
        long a = sum(123,3);
        System.out.println(a);
    }

}
